<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div id="root">
    <!--
      需求1：定义一个v-big指令，和v-text功能类似，但会把绑定的数值放大10倍
      需求2：定义一个v-fbind指令，和v-bind功能类似，但可以让其绑定的input元素默认获取焦点
    -->
    <h2>当前n值是：{{n}} <span v-text="n"></span></h2>
    <h2>放大n值10倍后是： <span v-big="n"></span></h2>
    <button @click="n++">点击n+1</button>
    <hr>
    <label>
        <input type="text" v-fbind:value="n">
    </label>


</div>
<script type="text/javascript">
    Vue.config.productionTip = false

    const vm = new Vue({
        el: "#root",
        data: {
            n: 1,
        },
        directives: {
            // big函数何时被调用？
            // 1、指令与元素成功绑定时（一上来）
            // 2、指令所在模板被重新解析时
            big(element, binding) {
                console.log(binding)
                element.innerText = binding.value * 10
            },
            fbind: {
                // 指令与元素成功绑定时
                bind(element, binding) {
                    element.value = binding.value
                },
                // 指令所在元素被插入页面时
                inserted(element, binding) {
                    element.focus()
                },
                // 指令所在的模板被重新解析时
                update(element, binding) {
                    element.value = binding.value
                }
            }
        }
    })
</script>

</body>
</html>